--------------------------------------------
   ProLink LoRaWAN Firmware US915 release_notes.txt
   2026 IMST GmbH
--------------------------------------------


.1 Content:
----------------------------------------------------------------------------------------------------------
This file contains an overview about the most important feature updates and bugfixes 
----------------------------------------------------------------------------------------------------------

.2 Supported Hardware
--------------------------------------------------------------------------
- iM980B     Module : ProLink_LoRaWAN_EndNode_Modem_MBAND_iM980B_Vx_y.hex

.3 Revision History:
--------------------------------------------------------------------------
27.08.2026 - Release V3.0 / Build Count 223
     - Bugfix related to RFU parameters, e.g. LinkADRReq (update in LoRaWAN certification testing)

19.12.2024 - Release V3.0 / Build Count 220
     - Bugfix: Duty Cycle implementation updated
     - HCI update: configuration of parameters only available for the selected stack (LoRaWAN/LR-Base)
     - AES Key for proprietary LoRa communication not readable
     - RP002-1.0.3: Regional Parameters document followed

08.05.2023 - Release V3.0 / Build Count 207
     - Bugfix: solved device busy issue if incorrect frame received between Rx1 and Rx2, if Class C configured
     - HCI Bugfix: solved "invalid multicast data indication" after multicast downlink between Rx1 and Rx2 window

14.07.2022 - Release V3.0 / Build Count 203
     - Rx configuration for Multicast in Class C added (HCI Update)
     - Improvement in internal timing handling
     - Sub-band configuration applies only if device deactivated
     (to avoid overwritting the configuration set by the LoRaWAN network server)

03.05.2022 - Release V3.0 / Build Count 201 (Beta)
     - HCI update: added Rx configuration for Multicast in Class C

20.09.2021 - Release V3.0 / Build Count 194
     - LoRaWAN update for v1.0.4
         * Retransmission back-off for Join Request
         * Change related LinkADRReq if ADR disabled
         * MAC reply truncation
         * No retransmissions of LoRaWAN stack
         * Persistance DevNonce/JoinNonce
         * First uplink after Join Accept sent with the data rate used in the last Join Request
         * Configurable data rate for Join Request
         * No ADRAckReq feature if ADR disabled
         * ABP for testing purposes
         * Class C update according to LoRaWAN specification (e.g. CLASS_C_RESP_TIMEOUT / MAC Commands not allowed)
     - Allowed to queue an uplink (60s) to replace the empty uplink (e.g. with ACK or after FPending bit)
     - One uplink triggered after FPending bit
     - ProLink feature included for device to device communication
     - HCI Update:
         * GetNetworkStatus with NbTrans info
         * DeviceTimeReq Handling
         * LinkADRReq Configuration if ADR disabled removed
         * Link Disconnect Indication if ADR disabled
     - LoRaWAN US915 updated for v1.0.4 / RP002-1.0.1
         * LoRaWAN US915 update: 20s ensured between uplinks with same frequency (if <50 channels)
         * LinkADRReq for US updated (ChMaskCntl 5)
     - LoRaWAN update:
         * Multicast in class C added
         * DevTimeReq support and time synchronization added
         * MAC commands in Port 0 only visible for application if option enabled
         * Trigger of LinkCheckReq added in TestApp for LoRaWAN certification
         * Bugfix in RxParamSetupReq with wrong parameters
         * Bugfix if invalid MAC command received: ignore it and continue normal operation
         * Bugfix if MAC command with wrong length received
         * Bugfix related to MAC commands (included in retransmission)

20.02.2020 - Release V2.0 / Build Count 167
     - LoRaWAN update:
         * Multicast in class C added
         * DevTimeReq support and time synchronization added
         * MAC commands in Port 0 only visible for application if option enabled
     - LoRaWAN update for LoRaWAN Certification v1.6 EU686:
         * Trigger of LinkCheckReq added in TestApp for LoRaWAN certification
         * Bugfix in RxParamSetupReq with wrong parameters
         * Bugfix if invalid MAC command received: ignore it and continue normal operation
         * Bugfix if MAC command with wrong length received
         * Bugfix related to MAC commands (included in retransmission)
         * Bugfix in datarate range from NewChannelReq

06.09.2019 - Release V2.0 / Build Count 159
     - Configuration of Baudrate and Number of WakeUpChars
     - Battery Level Status configuration added (for DevStatusAns)
     - HCI Power-Up Indication configuration added
     - Private LoRaWAN network configuration added
     - Change on EEPROM access during LoRaWAN activation
     - DevTimeReq support and time synchronization added
     - Default LoRaWAN settings updated
     - MAC commands in Port 0 only visible for application if option enabled
     - Join Request retransmissions fixed to 12
     - Update on EEPROM handling
     Note that it is recommended to set again the LoRaWAN settings after a firmware update 
     to ensure a correct functionality.

22.02.2018 - Release V2.0 / Build Count 142
     - LoRaWAN frame counter changed to 32 bits
     - Class C optimization
     - PowerSaver optimization
     - HCI changes:
        * Duty Cycle only configurable in Customer Mode
        * LinkADRReq configuration available in Customer Mode
        (0 = v1.0.2 (default), 1 = semtech proposal, 2 = KPN proposal)
        * Max. size for piggybacked MAC commands configurable
        * New HCI message to configure the max. tx power for each sub-band (EU868)
     - Bugfix in class C: Rx windows opened if a complete downlink received before
       (unlikely with the default settings).
     - Bugfix if unexpected downlink received 
       (downlink ignored if C-Data sent and no ACK included in the downlink frame)
     - No Data Indication with "Wrong Device Address" error not sent if device in class C
     - Change on DevStatusAns: SNR value sent in Margin field 

22.11.2017 - Release V2.0 / Build Count 122
     - MAC commands reply sent immediately using port 0 
     
19.09.2017 - Release V2.0 / Build Count 115
     - Pseudo-random channel selection
     - Changes on tx power configuration (EIRP and RF Gain settings)
     - Changes on HCI interface:
        * "Get supported bands" message added
        * Change error code handling of set radio configuration

16.08.2017 - Release V2.0 / Build Count 111
     - Bugfix related to random generator
     - Change on frame pending bit handling: max. 2 empty uplinks sent
     - LED control by Power Saving functionality removed
     
20.07.2017 - Release V2.0 / Build Count 109
     - Changes according to LoRaWAN Regional Parameters v1.0.2rB     
     - At least 4 125kHz channels required for DR0-DR3       
     
30.05.2017 - Release V2.0 / Build Count 102
    - Internal change in radio driver
    - No MAC commands reply sent if max. payload size exceeded

05.04.2017 - Release V1.18 / Build Count 94
    - First Beta-Version
    
.4 Known Limitations
-----------------------------------------------------------------------------------------------------------
- Activation By Personalization only available for testing purposes
- Following limitations related to the time synchronization:
* GPS epoch time used to synchronize the time on the end-device.
Note that there is a small time different between the GPS epoch and the UTC time. 
Moreover, the configuration of the time zone is not available, so that no correction is performed. 
* The time synchronization is performed if the DeviceTimeAns is received in any unicast class A/C downlink.
This means, that a time synchronization is performed even if the end-device does not send any request.